package com.smarthome.core.account;

import java.util.List;

import com.smarthome.domain.bean.ShAccountDoor;
import com.smarthome.domain.vo.boss.DataGrid;
import com.smarthome.domain.vo.boss.PageHelper;

/**
* @author zyf
* @date 2015年9月23日 下午8:27:29
* @version 1.0
* @Description: 用户-门牌处理接口
 */
public interface AccountDoorService {
	
	/**
	 * 用户-门牌分页对象
	 * @param accountDoor
	 * @param page
	 * @return
	 */
	DataGrid queryDataGrid(ShAccountDoor accountDoor,PageHelper page);
	
	/**
	 * 数据ID
	 * @param id
	 * @return
	 */
	ShAccountDoor queryDataById(Long id);
	
	/**
	 * 按条件查询门牌用户
	 * @param accountDoor
	 * @return
	 */
	ShAccountDoor queryDataByCondition(ShAccountDoor accountDoor);
	
	/**
	 * 查询用户门牌集合
	 * @param accountDoor
	 * @return
	 */
	List<ShAccountDoor> queryDataListByCondition(ShAccountDoor accountDoor);
	
	/**
	 * 门牌下业主是否存在
	 * @param doorId
	 * @return
	 */
	boolean ownerExist(Long doorId);
	
	/**
	 * 门牌下平台用户是否存在
	 * @param accountDoor
	 * @return
	 */
	boolean accountExist(ShAccountDoor accountDoor);
	
	/**
	 * 新增用户-门牌关系
	 * @param accountDoor
	 */
	void add(ShAccountDoor accountDoor);
	
	/**
	 * 删除用户-门牌关系
	 * @param accountDoor
	 */
	void delete(ShAccountDoor accountDoor);

	/**
	 * 设置默认房屋
	 * @param accountDoor
	 */
	void hasOtherHouse(ShAccountDoor accountDoor);

	/**
	 * 设置选择的房屋为默认房屋
	 * @param accountDoor
	 * @param dataId
	 */
	void changeOtherHouseNotDefault(ShAccountDoor accountDoor, Long dataId);
	
	/**
	 * 获取默认门牌
	 * @param accountId 用户ID
	 * @param residenceId 当前小区ID
	 * @return 
	 */
	ShAccountDoor getDefaultDoor(Long accountId,Long residenceId);
	
	/**
	 * 
	* @Title: getDetailList
	* @Description: 根据用户id获取用户住址详细信息(目前只有id)
	* @param accountId
	* @return 
	* List<ShAccountDoor>  
	* @throws
	 */
	List<ShAccountDoor> getDetailList(Long accountId);
}
